/**
 * 全局函数桥接文件
 * 在不同的JavaScript文件之间共享函数
 */

// 创建一个全局命名空间
window.ChatApp = window.ChatApp || {};

// 保存常用函数的引用
document.addEventListener('DOMContentLoaded', function() {
    // 等待DOM加载完成后执行
    setTimeout(function() {
        // 延迟一点执行，确保index.js中的函数已经定义

        // 暴露showMessage函数
        if (typeof showMessage === 'function') {
            window.showMessage = showMessage;
            console.log('showMessage函数已全局化');
        }

        // 暴露showToast函数
        if (typeof showToast === 'function') {
            window.showToast = showToast;
            console.log('showToast函数已全局化');
        }

        // 暴露scrollToBottom函数
        if (typeof scrollToBottom === 'function') {
            window.scrollToBottom = scrollToBottom;
            console.log('scrollToBottom函数已全局化');
        }

        // 暴露hideThinkingProcess函数
        if (typeof hideThinkingProcess === 'function') {
            window.hideThinkingProcess = hideThinkingProcess;
            console.log('hideThinkingProcess函数已全局化');
        }

        // 暴露formatMessage函数
        if (typeof formatMessage === 'function') {
            window.formatMessage = formatMessage;
            console.log('formatMessage函数已全局化');
        }
    }, 500);
});

/**
 * 备用显示用户消息函数
 * 当主函数不可用时使用
 */
function displayUserMessage(content) {
    const messageContainer = $('<div class="message-container"></div>');

    // 创建头像
    const avatarElement = $('<div class="message-avatar user"></div>')
        .append($('<i class="fas fa-user"></i>'));

    messageContainer.append(avatarElement);

    // 创建消息内容
    const messageContent = $('<div class="message-content"></div>');
    const messageBubble = $('<div class="message-bubble user"></div>')
        .append($('<div></div>').html(content.replace(/\n/g, '<br>')));

    messageContent.append(messageBubble);

    // 添加时间戳
    const timestamp = new Date();
    const timeString = formatTime(timestamp);
    messageContent.append($('<div class="message-meta"></div>').text(timeString));

    messageContainer.append(messageContent);
    $('#messageList').append(messageContainer);

    try {
        // 尝试滚动到底部
        const messageList = document.getElementById('messageList');
        if (messageList) {
            messageList.scrollTop = messageList.scrollHeight;
        }
    } catch (e) {
        console.error('滚动到底部出错', e);
    }
}

/**
 * 备用显示错误消息函数
 * 当主函数不可用时使用
 */
function displayErrorMessage(content) {
    const messageContainer = $('<div class="message-container"></div>');

    // 创建头像
    const avatarElement = $('<div class="message-avatar"></div>')
        .append($('<i class="fas fa-robot"></i>'));

    messageContainer.append(avatarElement);

    // 创建消息内容
    const messageContent = $('<div class="message-content"></div>');
    const messageBubble = $('<div class="message-bubble assistant"></div>')
        .append($('<div></div>').html(content.replace(/\n/g, '<br>')));

    messageContent.append(messageBubble);

    // 添加时间戳
    const timestamp = new Date();
    const timeString = formatTime(timestamp);
    messageContent.append($('<div class="message-meta"></div>').text(timeString));

    messageContainer.append(messageContent);
    $('#messageList').append(messageContainer);

    try {
        // 尝试滚动到底部
        const messageList = document.getElementById('messageList');
        if (messageList) {
            messageList.scrollTop = messageList.scrollHeight;
        }
    } catch (e) {
        console.error('滚动到底部出错', e);
    }
}

/**
 * 备用格式化时间函数
 */
function formatTime(date) {
    return [
        date.getHours().toString().padStart(2, '0'),
        date.getMinutes().toString().padStart(2, '0'),
        date.getSeconds().toString().padStart(2, '0')
    ].join(':');
}